package pers.litao.bit.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import pers.litao.bit.commons.entities.priduct.GoodsEntity;
import pers.litao.bit.commons.utils.LoginUserInfo;
import pers.litao.bit.commons.utils.R;

import java.util.Map;


/**
 * @author 李涛
 * @date 2020-11-25 14:46
 */
public interface GoodsService extends IService<GoodsEntity> {
    /**
     * 保存商品
     *
     * @param goodsEntity
     * @return
     */
    R saveGoods(GoodsEntity goodsEntity, LoginUserInfo loginUserInfo);

    /**
     * 根据ID获取商品信息
     *
     * @param id
     * @return
     */
    R getGoodsById(Long id);

    /**
     * 爬取天猫商品
     *
     * @param key
     * @return
     */
    R getTmallGoods(String key);

    /**
     * 获取最热商品
     *
     * @return
     */
    R getHotGoods(LoginUserInfo loginUserInfo);

    /**
     * 获取最新商品
     *
     * @return
     */
    R getNewGoods(LoginUserInfo loginUserInfo);

    /**
     * 多条件查询商品列表（分页，分类，关键字）
     *
     * @param params
     * @return
     */
    R getGoodsList(Map<String,Object> params,LoginUserInfo loginUserInfo);

    /**
     * 获取供应商商品列表
     *
     * @param page
     * @return
     */
    R userGoodsList(Long page,LoginUserInfo loginUserInfo);

    /**
     * 根据ID删除商品
     *
     * @param id
     * @return
     */
    R deleteById(Long id, LoginUserInfo loginUserInfo);

    /**
     * 商品详情出猜你喜欢
     *
     * @param id
     * @return
     */
    R detailedGuessYouLike(Long id,LoginUserInfo loginUserInfo);

    /**
     * 获取商品列表，内部调用
     *
     * @param ids
     * @return
     */
    R getGoodsListByIds(Long[] ids);

    /**
     * 获取商品数量
     *
     * @param loginUserInfo
     * @return
     */
    R getGoodsCount(LoginUserInfo loginUserInfo);
}
